//
//  FFLogDefine.h
//  FFSurveillance
//
//  Created by roro_latrobe on 16/10/30.
//  Copyright © 2016年 cn.wanda. All rights reserved.
//



#if (FFLOG_SET_MODE == 1)
//#warning @"开启功能强大的FFLog"

#import "FFLogManager.h"

//#define FFLogError(frmt, ...) [[FFLogFilter sharedInstance] fflogAsync:NO WithLv:DDLogFlagError andBusName:self.currentBusinessName andCurrentClass:NSStringFromClass([self class]) andFormat:frmt,##__VA_ARGS__];
//
//#define FFLogWarn(frmt, ...) [[FFLogFilter sharedInstance] fflogAsync:LOG_ASYNC_ENABLED WithLv:DDLogFlagWarning andBusName:self.currentBusinessName andCurrentClass:NSStringFromClass([self class]) andFormat:frmt,##__VA_ARGS__];
//
//#define FFLogInfo(frmt, ...) [[FFLogFilter sharedInstance] fflogAsync:LOG_ASYNC_ENABLED WithLv:DDLogFlagInfo andBusName:self.currentBusinessName andCurrentClass:NSStringFromClass([self class]) andFormat:frmt,##__VA_ARGS__];
//
//#define FFLogDebug(frmt, ...) [[FFLogFilter sharedInstance] fflogAsync:LOG_ASYNC_ENABLED WithLv:DDLogFlagDebug andBusName:self.currentBusinessName andCurrentClass:NSStringFromClass([self class]) andFormat:frmt,##__VA_ARGS__];
//
//#define FFLogVerbose(frmt, ...) [[FFLogFilter sharedInstance] fflogAsync:LOG_ASYNC_ENABLED WithLv:DDLogFlagVerbose andBusName:self.currentBusinessName andCurrentClass:NSStringFromClass([self class]) andFormat:frmt,##__VA_ARGS__];

//#define FFLogError(frmt, ...)   LOG_MAYBE(NO,                LOG_LEVEL_DEF, DDLogFlagError,   0, nil, __PRETTY_FUNCTION__, frmt, ##__VA_ARGS__)
//#define FFLogWarn(frmt, ...)    LOG_MAYBE(LOG_ASYNC_ENABLED, LOG_LEVEL_DEF, DDLogFlagWarning, 0, nil, __PRETTY_FUNCTION__, frmt, ##__VA_ARGS__)
//

//#define NSLog(...) {\
//    if (![AppConfig sharedInstance].appStore) \
//    {\
//         NSLog(__VA_ARGS__);\
//    }\
//}


//#define FFLogInfo(frmt, ...) \
//    if ([[GVUserDefaults standardUserDefaults] valueForKey:self.currentBusinessName]) {\
//        LOG_MAYBE(\
//            LOG_ASYNC_ENABLED,\
//            LOG_LEVEL_DEF,\
//            DDLogFlagInfo,\
//            0,\
//            nil,\
//            __PRETTY_FUNCTION__,\
//            frmt,\
//            ##__VA_ARGS__);\
//    }


#define FFLogInfo(frmt,...) \
        LOG_MAYBE(\
                LOG_ASYNC_ENABLED,\
                LOG_LEVEL_DEF,\
                DDLogFlagInfo,\
                0,\
                nil,\
                __PRETTY_FUNCTION__,\
                frmt,\
                ##__VA_ARGS__);\

#define FFLogError(frmt,...) \
        LOG_MAYBE(\
                LOG_ASYNC_ENABLED,\
                LOG_LEVEL_DEF,\
                DDLogFlagError,\
                0,\
                nil,\
                __PRETTY_FUNCTION__,\
                frmt,\
                ##__VA_ARGS__);\

#define FFLogWarn(frmt,...) \
        LOG_MAYBE(\
                LOG_ASYNC_ENABLED,\
                LOG_LEVEL_DEF,\
                DDLogFlagWarning,\
                0,\
                nil,\
                __PRETTY_FUNCTION__,\
                frmt,\
                ##__VA_ARGS__);\

#define FFLogDebug(frmt,...) \
        LOG_MAYBE(\
                LOG_ASYNC_ENABLED,\
                LOG_LEVEL_DEF,\
                DDLogFlagDebug,\
                0,\
                nil,\
                __PRETTY_FUNCTION__,\
                frmt,\
                ##__VA_ARGS__);\

#define FFLogVerbose(frmt,...) \
        LOG_MAYBE(\
                LOG_ASYNC_ENABLED,\
                LOG_LEVEL_DEF,\
                DDLogFlagVerbose,\
                0,\
                nil,\
                __PRETTY_FUNCTION__,\
                frmt,\
                ##__VA_ARGS__);\


//默认的原来NSLog都为ALogInfo
//#define NSLog(frmt,...) \
//        FFLogInfo((frmt), ##__VA_ARGS__);\
//! 定义各种LOG
//! 网络请求API
#define ApiInfoLog(frmt,...) {\
    if([GVUserDefaults standardUserDefaults].ffEnvSwitch == YES){\
        FFLogInfo((frmt), ##__VA_ARGS__);\
    }\
}

#define ApiErrorLog(frmt,...) {\
    if([GVUserDefaults standardUserDefaults].ffEnvSwitch == YES){\
        FFLogError((frmt), ##__VA_ARGS__);\
    }\
}

#define ApiWarnLog(frmt,...) {\
    if([GVUserDefaults standardUserDefaults].ffEnvSwitch == YES){\
        FFLogWarn((frmt), ##__VA_ARGS__);\
    }\
}

#define ApiDebugLog(frmt,...) {\
    if([GVUserDefaults standardUserDefaults].ffEnvSwitch == YES){\
        FFLogDebug((frmt), ##__VA_ARGS__);\
    }\
}

#define ApiVerboseLog(frmt,...) {\
    if([GVUserDefaults standardUserDefaults].ffEnvSwitch == YES){\
        FFLogVerbose((frmt), ##__VA_ARGS__);\
    }\
}

#elif (FFLOG_SET_MODE == 2)

//#warning @"使用原始的NSLog"

#define FFLogError(frmt, ...)   NSLog((frmt), ##__VA_ARGS__)
#define FFLogWarn(frmt, ...)    NSLog((frmt), ##__VA_ARGS__)
#define FFLogInfo(frmt, ...)    NSLog((frmt), ##__VA_ARGS__)
#define FFLogVerbose(frmt, ...) NSLog((frmt), ##__VA_ARGS__)

#else

//#warning @"关闭代码产生的日志"
//注意usertrack等framework库的日志需这里是关闭不了的,需要找到对应库的方法关闭
#define NSLog(frmt,...) {}
#define FFLogError(frmt, ...)   {}
#define FFLogWarn(frmt, ...)    {}
#define FFLogInfo(frmt, ...)    {}
#define FFLogVerbose(frmt, ...) {}
#endif

